package com.bookmanagement.mapper;

import com.bookmanagement.entity.Book;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

@Mapper
public interface BookMapper {
    Book findById(@Param("id") Long id);
    Book findByIsbn(@Param("isbn") String isbn);
    void insertBook(Book book);
    void updateBook(Book book);
    void deleteBook(@Param("id") Long id);
    List<Book> findBooksByCriteria(@Param("title") String title, @Param("author") String author,
                                   @Param("isbn") String isbn);
    List<Book> findBooks(@Param("title") String title, @Param("offset") int offset, @Param("pageSize") int pageSize);
    Long countBooks(@Param("title") String title);
    Long checkBorrowing(@Param("bookId") Long bookId);

    /**
     * 按状态统计图书数量
     * @return 状态统计结果，包含 status（图书状态）和 count（数量）
     */
    List<Map<String, Object>> countBooksByStatus();
}